var/InitGameVarRun = 0

proc
	InitializeGameVariables()
		if(!InitGameVarRun)
			InitGameVarRun = 1
			InitializeMonsterSubtypes()
		//	InitializeMonsterIdstrs() //Which are used in all of TWO procs. Waah.
			CreatePages() // Populate some variables with monsters
			CreateLevelControllers() //Used for turn-based system
		else
			world.log << "Init: Error. World has already been initialized!"
			return 0

//var/list/global/rgmonsubtypeinfo[cMonstersMax]
var/list/global/rgmonsubtypeinfo = list()

proc
	InitializeMonsterSubtypes()
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 7, 5, 2, 45, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil | mcatMagicUsing, 0xbf2f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(4, 6, 4, 1, 15, 0, mattribOpenDoor | mattribLockedDoor | mattribSecretDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(3, 5, 3, 2, 10, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil, 0xbf6f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(5, 7, 3, 2, 25, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil, 0xbf6f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 8, 3, 2, 30, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil, 0xbf6f)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 8, 5, 2, 65, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil | mcatMagicUsing, 0xbf2f)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(1, 2, 3, 2, 1, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(1, 3, 3, 2, 2, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(1, 3, 3, 2, 2, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(1, 4, 3, 2, 3, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(2, 5, 4, 2, 6, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(3, 5, 3, 2,10, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(5, 6, 3, 2,25, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 7, 3, 2,40, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 8, 3, 2,50, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(3, 5, 4, 3, 14, 0, mattribOpenDoor | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf2f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(5, 6, 4, 2, 20, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil | mcatRegenerating, 0xbf2f)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 9, 5, 3, 75, 0, mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant | mcatFireUsing, 0xbf6b)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 8, 5, 3, 60, 0, mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant | mcatColdUsing, 0xbf6b)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 6, 4, 3, 40, 0, mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 10, 4, 3, 55, 0, mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 10, 4, 3, 55, 0, mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(1, 4, 3, 1, 3, 0, mattribStairsDown, mcatReptile, 0xa184)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(2, 5, 3, 1, 5, 0, mattribStairsDown | mattribSymmetric, mcatReptile, 0xa184)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(3, 6, 2, 2, 10, 0, 0, mcatReptile, 0xa19d)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(5, 10, 3, 2, 20, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 12, 3, 3, 40, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 14, 4, 3, 60, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 16, 4, 3, 80, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(9, 17, 5, 4, 100, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(10, 18, 6, 4, 120, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(5, 10, 3, 2, 20, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatLightningUsing | mcatEvil, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 12, 3, 3, 35, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatLightningUsing | mcatEvil, 0xad9d)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 14, 4, 3, 55, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatEvil | mcatLightningUsing, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 16, 4, 3, 75, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatEvil | mcatLightningUsing, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(9, 17, 5, 4, 95, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatEvil | mcatLightningUsing, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(10, 18, 5, 4, 110, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatEvil | mcatLightningUsing, 0xad9d)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(5, 10, 3, 2, 18, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 12, 3, 3, 35, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 14, 4, 3, 55, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 16, 4, 3, 75, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(9, 17, 5, 4, 90, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(10, 18, 5, 4, 105, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(5, 10, 3, 2, 18, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 12, 3, 3, 35, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 14, 4, 3, 55, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 16, 4, 3, 75, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(9, 17, 5, 4, 90, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(10, 18, 5, 4, 105, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0xad9d)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0xad9d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(3, 1, 0, 1, 10, soundSlime, mattribINormal | mattribISleep | mattribSymmetric, mcatNormal, 0x0000)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(4, 3, 3, 2, 14, soundSlime, mattribBreakDoor | mattribRCold | mattribILightning | mattribIFear | mattribIConfusion | mattribISleep | mattribSymmetric, mcatNormal, 0x8000)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(1, 3, 3, 2, 3, 0, mattribStairsUp | mattribStairsDown | mattribISleep | mattribSymmetric, mcatUndead, 0x872f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(2, 4, 3, 2, 7, 0, mattribStairsUp | mattribStairsDown | mattribISleep, mcatUndead, 0x872f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(5, 10, 5, 1, 20, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xd50f)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 12, 5, 2, 50, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIPoison | mattribICold | mattribIFear | mattribIDrainLife | mattribISleep | mattribSymmetric, mcatUndead | mcatEvil, 0xd50f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 14, 5, 2, 65, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown | mattribIPoison | mattribIFear | mattribIDrainLife | mattribRCold | mattribRLightning | mattribISleep | mattribSymmetric, mcatUndead | mcatEvil, 0xbf2f)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 10, 4, 3, 35, 0, mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xbf2f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 11, 4, 3, 40, 0, mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xbf2f)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 12, 4, 3, 50, 0, mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xbf2f)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 11, 4, 2, 35, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xd50f)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 12, 4, 2, 50, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xd50f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 14, 4, 2, 70, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xd50f)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(4,  7, 3, 2, 16, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIPoison | mattribICold | mattribIFear | mattribIDrainLife | mattribISleep | mattribSymmetric, mcatUndead | mcatEvil, 0xd50f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(1, 1, 3, 2, 1, 0, 0, mcatNormal, 0xa504)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(1, 4, 4, 2, 3, soundDog, mattribStairsUp | mattribStairsDown, mcatNormal, 0xa51d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(4, 7, 4, 2, 16, 0, mattribStairsUp | mattribStairsDown, mcatNormal, 0xa51d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(1, 5, 3, 1, 2, soundBat, mattribSymmetric, mcatAvian, 0xa104)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(4, 6, 4, 2, 19, 0, mattribStairsUp | mattribStairsDown, mcatEvil | mcatAvian, 0xad3d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(3, 4, 4, 2, 11, 0, mattribStairsUp | mattribStairsDown, mcatNormal, 0xa51d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(5, 6, 4, 2, 28, 0, mattribStairsUp | mattribStairsDown, mcatColdUsing, 0xa51d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(4, 5, 3, 3, 17, 0, mattribStairsUp | mattribStairsDown, mcatNormal, 0xa51d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(5, 6, 3, 3, 27, 0, mattribStairsUp | mattribStairsDown, mcatNormal, 0xa51d)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(2, 6, 3, 2, 7, 0, 0, mcatNormal, 0x8515)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(3, 4, 3, 1, 10, 0, mattribSymmetric, mcatNormal, 0x8505)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(3, 7, 2, 2, 11, 0, 0, mcatNormal, 0x8515)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 8, 5, 2, 55, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribRLightning | mattribISleep, mcatElemental | mcatAvian, 0x4500)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 9, 5, 3, 65, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribRCold | mattribILightning | mattribISleep, mcatElemental, 0x852f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 8, 5, 4, 60, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribIFlame | mattribISleep, mcatElemental | mcatFireUsing, 0x4500)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 8, 5, 4, 60, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribRCold | mattribISleep, mcatElemental, 0x4500)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 8, 4, 4, 55, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribIFlame | mattribISleep, mcatElemental | mcatFireUsing, 0x852f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 8, 4, 3, 50, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribICold | mattribISleep, mcatElemental | mcatColdUsing, 0x852f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 7, 4, 3, 40, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribRLightning | mattribISleep, mcatElemental | mcatAvian, 0x4500)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 12, 6, 2, 60, 0, mattribStairsUp | mattribStairsDown | mattribOpenDoor | mattribBreakDoor | mattribIFlame | mattribRCold | mattribISleep, mcatDevil | mcatEvil, 0xbfaf)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(9, 15, 6, 2, 80, 0, mattribStairsUp | mattribStairsDown | mattribOpenDoor | mattribBreakDoor | mattribIFlame | mattribRCold | mattribISleep, mcatDevil | mcatEvil, 0xbfaf)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(9, 16, 6, 2, 85, 0, mattribStairsUp | mattribStairsDown | mattribOpenDoor | mattribBreakDoor | mattribICold | mattribISleep, mcatDevil | mcatEvil, 0xbf2f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(10, 17, 6, 2, 100, 0, mattribStairsUp | mattribStairsDown | mattribOpenDoor | mattribBreakDoor | mattribIFlame | mattribRCold | mattribISleep | mattribSymmetric, mcatDevil | mcatEvil, 0xbfaf)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(6, 6, 2, 2,25, 0, mattribRFlame | mattribRCold | mattribIPoison | mattribBreakDoor, mcatNormal, 0x832f)
		#ifndef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(7, 8, 2, 2,35, 0, mattribRFlame | mattribRCold | mattribIPoison | mattribBreakDoor, mcatNormal, 0x832f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 9, 2, 2,52, 0, mattribRFlame | mattribRLightning | mattribIPoison | mattribBreakDoor, mcatNormal, 0x832f)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(5, 5, 2, 2,17, 0, mattribRCold | mattribRLightning | mattribIPoison | mattribBreakDoor, mcatNormal, 0x832f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0x0)
		#ifdef DEMO
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 9, 4, 3, 70, 0, mattribISleep | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b)
		#else
		// Surtur + Giant Kings + Prisoner
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(10, 19, 10, 3, 1000, 0, mattribStairsUp | mattribStairsDown | mattribOpenDoor | mattribBreakDoor | mattribIFlame | mattribRCold | mattribISleep, mcatDevil | mcatEvil, 0x9f2f)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(8, 9, 4, 3, 70, 0, mattribISleep | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(9, 10, 4, 3, 80, 0, mattribISleep | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(9, 10, 5, 3, 90, 0, mattribISleep | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant | mcatColdUsing, 0xbf6b)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(10, 11, 5, 3, 100, 0, mattribISleep | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant | mcatFireUsing, 0xbf6b)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(1, 0, 3, 3, 0, 0, mattribSymmetric, 0, 0x0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0)
		#endif /* DEMO */
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0)
		rgmonsubtypeinfo += new /MONSUBTYPEINFO(0, 0, 0, 0, 0, 0, 0, 0, 0)


/* = {
#ifndef DEMO
	{	/* mstWizard, */ 7, 7, 5, 2, 45, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil | mcatMagicUsing, 0xbf2f},
#endif /* DEMO */
	{	/* mstThief, */  4, 6, 4, 1, 15, 0, mattribOpenDoor | mattribLockedDoor | mattribSecretDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f},
	{	/* mstBandit, */ 3, 5, 3, 2, 10, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil, 0xbf6f},
	{	/* mstWarrior,*/ 5, 7, 3, 2, 25, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil, 0xbf6f},
	{	/* mstBerserker,*/ 6, 8, 3, 2, 30, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil, 0xbf6f},
#ifndef DEMO
	{	/* mstNecromancer, */ 8, 8, 5, 2, 65, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil | mcatMagicUsing, 0xbf2f},
#endif /* DEMO */
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* mstGoblin, */ 1, 2, 3, 2, 1, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f},
	{	/* mstKobold, */ 1, 3, 3, 2, 2, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f},
	{	/* mstHobGoblin,  */ 1, 3, 3, 2, 2, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f},
	{	/* mstOrc,  	*/ 1, 4, 3, 2, 3, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f},
	{	/* mstGoblinFighter, */ 2, 5, 4, 2, 6, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f},
	{	/* mstRatMan,  */ 3, 5, 3, 2,10, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f},
	{	/* mstWolfMan, */ 5, 6, 3, 2,25, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f},
	{	/* mstBearMan, */ 6, 7, 3, 2,40, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f},
#ifndef DEMO
	{	/* mstBullMan, */ 7, 8, 3, 2,50, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil, 0xbf6f},
#endif /* DEMO */
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* mstOgre, */ 3, 5, 4, 3, 14, 0, mattribOpenDoor | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf2f},
	{	/* mstTroll, */ 5, 6, 4, 2, 20, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown, mcatEvil | mcatRegenerating, 0xbf2f},
#ifndef DEMO
	{	/* mstFireGiant, */ 8, 9, 5, 3, 75, 0, mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant | mcatFireUsing, 0xbf6b},
	{	/* mstFrostGiant, */ 7, 8, 5, 3, 60, 0, mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant | mcatColdUsing, 0xbf6b},
#endif /* DEMO */
	{	/* mstHillGiant, */ 6, 6, 4, 3, 40, 0, mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b},
#ifndef DEMO
	{	/* mstStoneGiant, */ 7, 10, 4, 3, 55, 0, mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b},
	{	/* mstEttin, */ 7, 10, 4, 3, 55, 0, mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
#endif /* DEMO */
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* mstSnake, */ 1, 4, 3, 1, 3, 0, mattribStairsDown, mcatReptile, 0xa184},
	{	/* mstViper, */ 2, 5, 3, 1, 5, 0, mattribStairsDown | mattribSymmetric, mcatReptile, 0xa184},
	{	/* mstLizard,	*/ 3, 6, 2, 2, 10, 0, 0, mcatReptile, 0xa19d},
#ifndef DEMO
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
#endif /* DEMO */
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* mstYORedDragon, */ 5, 10, 3, 2, 20, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d},
	{	/* mstYARedDragon, */ 6, 12, 3, 3, 40, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d},
#ifndef DEMO
	{	/* mstADRedDragon, */ 7, 14, 4, 3, 60, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d},
	{	/* mstOLRedDragon, */ 8, 16, 4, 3, 80, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d},
	{	/* mstVORedDragon, */ 9, 17, 5, 4, 100, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d},
	{	/* mstANRedDragon, */ 10, 18, 6, 4, 120, 0, mattribBreakDoor | mattribRFlame, mcatReptile | mcatDragon | mcatEvil | mcatFireUsing, 0xad9d},
#endif /* DEMO */
	{	/* mstYOBlueDragon, */ 5, 10, 3, 2, 20, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatLightningUsing | mcatEvil, 0xad9d},
	{	/* mstYABlueDragon, */ 6, 12, 3, 3, 35, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatLightningUsing | mcatEvil, 0xad9d},
#ifndef DEMO
	{	/* mstADBlueDragon, */ 7, 14, 4, 3, 55, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatEvil | mcatLightningUsing, 0xad9d},
	{	/* mstOLBlueDragon, */ 8, 16, 4, 3, 75, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatEvil | mcatLightningUsing, 0xad9d},
	{	/* mstVOBlueDragon, */ 9, 17, 5, 4, 95, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatEvil | mcatLightningUsing, 0xad9d},
	{	/* mstANBlueDragon, */ 10, 18, 5, 4, 110, 0, mattribBreakDoor | mattribRLightning, mcatReptile | mcatDragon | mcatEvil | mcatLightningUsing, 0xad9d},
#endif /* DEMO */
	{	/* mstYOWhiteDragon, */ 5, 10, 3, 2, 18, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d},
	{	/* mstYAWhiteDragon, */ 6, 12, 3, 3, 35, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d},
#ifndef DEMO
	{	/* mstADWhiteDragon, */ 7, 14, 4, 3, 55, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d},
	{	/* mstOLWhiteDragon, */ 8, 16, 4, 3, 75, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d},
	{	/* mstVOWhiteDragon, */ 9, 17, 5, 4, 90, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d},
	{	/* mstANWhiteDragon, */ 10, 18, 5, 4, 105, 0, mattribBreakDoor | mattribRCold, mcatReptile | mcatDragon | mcatEvil | mcatColdUsing, 0xad9d},
#endif /* DEMO */
	{	/* mstYOGreenDragon, */ 5, 10, 3, 2, 18, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d},
	{	/* mstYAGreenDragon, */ 6, 12, 3, 3, 35, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d},
#ifndef DEMO
	{	/* mstADGreenDragon, */ 7, 14, 4, 3, 55, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d},
	{	/* mstOLGreenDragon, */ 8, 16, 4, 3, 75, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d},
	{	/* mstVOGreenDragon, */ 9, 17, 5, 4, 90, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d},
	{	/* mstANGreenDragon, */ 10, 18, 5, 4, 105, 0, mattribBreakDoor | mattribRPoison, mcatReptile | mcatDragon | mcatEvil, 0xad9d},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0xad9d},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0xad9d},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0xad9d},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0xad9d},
#endif /* DEMO */
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0xad9d},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0xad9d},
	{	/* mstGreenSlime, */ 3, 1, 0, 1, 10, soundSlime, mattribINormal | mattribISleep | mattribSymmetric, mcatNormal, 0x0000},
	{	/* mstGelatinousCube, */ 4, 3, 3, 2, 14, soundSlime, mattribBreakDoor | mattribRCold | mattribILightning | mattribIFear | mattribIConfusion | mattribISleep | mattribSymmetric, mcatNormal, 0x8000},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* mstSkeleton, */ 1, 3, 3, 2, 3, 0, mattribStairsUp | mattribStairsDown | mattribISleep | mattribSymmetric, mcatUndead, 0x872f},
	{	/* mstZombie, */ 2, 4, 3, 2, 7, 0, mattribStairsUp | mattribStairsDown | mattribISleep, mcatUndead, 0x872f},
	{	/* mstGhost, */ 5, 10, 5, 1, 20, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xd50f},
#ifndef DEMO
	{	/* mstSpectre, */ 7, 12, 5, 2, 50, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIPoison | mattribICold | mattribIFear | mattribIDrainLife | mattribISleep | mattribSymmetric, mcatUndead | mcatEvil, 0xd50f},
	{	/* mstVampire, */ 8, 14, 5, 2, 65, 0, mattribOpenDoor | mattribStairsUp | mattribStairsDown | mattribIPoison | mattribIFear | mattribIDrainLife | mattribRCold | mattribRLightning | mattribISleep | mattribSymmetric, mcatUndead | mcatEvil, 0xbf2f},
#endif /* DEMO */
	{	/* mstTunnelWight, */ 6, 10, 4, 3, 35, 0, mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xbf2f},
	{	/* mstBarrowWight, */ 6, 11, 4, 3, 40, 0, mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xbf2f},
#ifndef DEMO
	{	/* mstCastleWight, */ 7, 12, 4, 3, 50, 0, mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xbf2f},
#endif /* DEMO */
	{	/* mstPaleWraith,  */ 6, 11, 4, 2, 35, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xd50f},
#ifndef DEMO
	{	/* mstDarkWraith,  */ 7, 12, 4, 2, 50, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xd50f},
	{	/* mstAbyssWraith, */ 8, 14, 4, 2, 70, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIDrainLife | mattribIConfusion | mattribIPoison | mattribISleep, mcatUndead | mcatEvil, 0xd50f},
#endif /* DEMO */
	{	/* mstShadow,  */     4,  7, 3, 2, 16, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribIPoison | mattribICold | mattribIFear | mattribIDrainLife | mattribISleep | mattribSymmetric, mcatUndead | mcatEvil, 0xd50f},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
#ifndef DEMO
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
#endif /* DEMO */
	{	/* mstRat, */ 1, 1, 3, 2, 1, 0, 0, mcatNormal, 0xa504},
	{	/* mstDog, */ 1, 4, 4, 2, 3, soundDog, mattribStairsUp | mattribStairsDown, mcatNormal, 0xa51d},
	{	/* mstCarrionCrawler, */ 4, 7, 4, 2, 16, 0, mattribStairsUp | mattribStairsDown, mcatNormal, 0xa51d},
	{	/* mstBat, */       1, 5, 3, 1, 2, soundBat, mattribSymmetric, mcatAvian, 0xa104},
	{	/* mstManticore, */ 4, 6, 4, 2, 19, 0, mattribStairsUp | mattribStairsDown, mcatEvil | mcatAvian, 0xad3d},
	{	/* mstWolf, */      3, 4, 4, 2, 11, 0, mattribStairsUp | mattribStairsDown, mcatNormal, 0xa51d},
	{	/* mstWhiteWolf, */ 5, 6, 4, 2, 28, 0, mattribStairsUp | mattribStairsDown, mcatColdUsing, 0xa51d},
	{	/* mstBear, */ 	    4, 5, 3, 3, 17, 0, mattribStairsUp | mattribStairsDown, mcatNormal, 0xa51d},
	{	/* mstCaveBear, */ 	5, 6, 3, 3, 27, 0, mattribStairsUp | mattribStairsDown, mcatNormal, 0xa51d},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* mstAnt, */ 2, 6, 3, 2, 7, 0, 0, mcatNormal, 0x8515},
	{	/* mstSpider, */ 3, 4, 3, 1, 10, 0, mattribSymmetric, mcatNormal, 0x8505},
	{	/* mstScorpion, */ 3, 7, 2, 2, 11, 0, 0, mcatNormal, 0x8515},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
#ifndef DEMO
	{	/* mstAirElemental, */  7, 8, 5, 2, 55, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribRLightning | mattribISleep, mcatElemental | mcatAvian, 0x4500},
	{	/* mstEarthElemental,*/ 8, 9, 5, 3, 65, 0, mattribRock | mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribRCold | mattribILightning | mattribISleep, mcatElemental, 0x852f},
	{	/* mstFireElemental, */ 8, 8, 5, 4, 60, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribIFlame | mattribISleep, mcatElemental | mcatFireUsing, 0x4500},
	{	/* mstWaterElemental,*/ 8, 8, 5, 4, 60, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribRCold | mattribISleep, mcatElemental, 0x4500},
	{	/* mstMagmaElemental,*/ 7, 8, 4, 4, 55, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribIFlame | mattribISleep, mcatElemental | mcatFireUsing, 0x852f},
	{	/* mstIceElemental,  */ 7, 8, 4, 3, 50, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribICold | mattribISleep, mcatElemental | mcatColdUsing, 0x852f},
	{	/* mstDustElemental, */ 6, 7, 4, 3, 40, 0, mattribStairsUp | mattribStairsDown | mattribBreakDoor | mattribRLightning | mattribISleep, mcatElemental | mcatAvian, 0x4500},
#endif /* DEMO */
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* mstBarbedDevil, */ 8, 12, 6, 2, 60, 0, mattribStairsUp | mattribStairsDown | mattribOpenDoor | mattribBreakDoor | mattribIFlame | mattribRCold | mattribISleep, mcatDevil | mcatEvil, 0xbfaf},
#ifndef DEMO
	{	/* mstHornedDevil, */ 9, 15, 6, 2, 80, 0, mattribStairsUp | mattribStairsDown | mattribOpenDoor | mattribBreakDoor | mattribIFlame | mattribRCold | mattribISleep, mcatDevil | mcatEvil, 0xbfaf},
	{	/* mstIceDevil, */ 9, 16, 6, 2, 85, 0, mattribStairsUp | mattribStairsDown | mattribOpenDoor | mattribBreakDoor | mattribICold | mattribISleep, mcatDevil | mcatEvil, 0xbf2f},
	{	/* mstPitDevil, */ 10, 17, 6, 2, 100, 0, mattribStairsUp | mattribStairsDown | mattribOpenDoor | mattribBreakDoor | mattribIFlame | mattribRCold | mattribISleep | mattribSymmetric, mcatDevil | mcatEvil, 0xbfaf},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
#endif /* DEMO */
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
	{	/* mstBronzeStatue, */ 6, 6, 2, 2,25, 0, mattribRFlame | mattribRCold | mattribIPoison | mattribBreakDoor, mcatNormal, 0x832f},
#ifndef DEMO
	{	/* mstIronStatue, */   7, 8, 2, 2,35, 0, mattribRFlame | mattribRCold | mattribIPoison | mattribBreakDoor, mcatNormal, 0x832f},
	{	/* mstMarbleStatue, */ 8, 9, 2, 2,52, 0, mattribRFlame | mattribRLightning | mattribIPoison | mattribBreakDoor, mcatNormal, 0x832f},
#endif /* DEMO */
	{	/* mstWoodStatue, */   5, 5, 2, 2,17, 0, mattribRCold | mattribRLightning | mattribIPoison | mattribBreakDoor, mcatNormal, 0x832f},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0x0},
#ifdef DEMO
	{	/* mstHillGiantEmmissary, */ 8, 9, 4, 3, 70, 0, mattribISleep | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b},
#else
	{	/* mstSurtur, */ 10, 19, 10, 3, 1000, 0, mattribStairsUp | mattribStairsDown | mattribOpenDoor | mattribBreakDoor | mattribIFlame | mattribRCold | mattribISleep, mcatDevil | mcatEvil, 0x9f2f},
	{	/* mstHillGiantKing, */ 8, 9, 4, 3, 70, 0, mattribISleep | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b},
	{	/* mstStoneGiantKing, */ 9, 10, 4, 3, 80, 0, mattribISleep | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant, 0xbf6b},
	{	/* mstFrostGiantKing, */ 9, 10, 5, 3, 90, 0, mattribISleep | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant | mcatColdUsing, 0xbf6b},
	{	/* mstFireGiantKing, */ 10, 11, 5, 3, 100, 0, mattribISleep | mattribBreakDoor | mattribStairsUp | mattribStairsDown | mattribSymmetric, mcatEvil | mcatGiant | mcatFireUsing, 0xbf6b},
	{	/* mstPrisoner, */    1, 0, 3, 3, 0, 0, mattribSymmetric, 0, 0x0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0},
#endif /* DEMO */
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0},
	{	/* unused, */    0, 0, 0, 0, 0, 0, 0, 0, 0}
*/


/*
Proc evil. No use.
proc
	InitializeMonsterIdstrs() // :(
		mpMstIdstr += new */

var/list/mapAttackTypePAttrib = list(
	pattribRNormalDamage,	/* normal */
	pattribRFlame,			/* fire */
	pattribRCold,			/* cold */
	pattribRAcid,			/* acid */
	pattribRLightning,		/* lightning */
	pattribRPoison,			/* poison 1 */
	pattribRPoison,			/* poison 2 */
	pattribRPoison,			/* poison 3 */
	pattribRDrainLife,		/* exp. drain */
	pattribRDrainLife,		/* stat drain */
	-1,						/* obj drain */
	-1,						/* obj destroy */
	-1,						/* obj steal */
	pattribRDisease,		/* disease */
	pattribRDrainLife,		/* mana drain */
	pattribRFear,			/* fear */
	pattribRConfusion,		/* confusion */
	pattribRMagic,			/* slow */
	pattribRMagic,			/* blind */
	pattribRMagic,			/* spell */
	pattribRNormalDamage,	/* normal */
	pattribRNormalDamage,	/* normal */
	pattribRNormalDamage,	/* normal */
	pattribRFlame,			/* breath fire */
	pattribRCold,			/* breath cold */
	pattribRAcid,			/* breath acid */
	pattribRLightning,		/* breath lightning */
	pattribRPoison,			/* breath poison */
	pattribRNormalDamage,	/* lash */
	pattribRNormalDamage,	/* attackThrowBoulder */
	pattribRNormalDamage,	/* attackThrowIceball */
	pattribRNormalDamage,	/* attackHurlTailSpike */
	pattribRNormalDamage,	/* attackBuffet */
	-1,						/* attackParalysis	*/
	pattribRNormalDamage,	/* attackFireArrow */
	pattribRDrainLife,		/* attackHPDrain	*/
	-1						/* attackWhirlwind	*/
	)

/*
// Note. Eventually this will be phased out. Most
// info is redundant between mondat and the types.
MONDAT
var
	MONTYPE/monType;
	SUBTYPE/subType;
	hpBase;	/* base hit points */
	ndice;		/* + (ndice) d6 */
	speed;
	slow;
	hobjlist;	/* to keep compiler from bitching about initializing with 0 */
	status;	/* really lots of bits */
//	counter;	/* for scheduling actions */
	cAttacks;
	iAttackCur;
	cAttacksRound;
//	dirLast;
//	row, col;
//	rowPlayer, colPlayer;
	AVMod;
//	unused;
//	hmem;	/* to keep compiler from bitching about initializing with 0 */
	rgw[2];
	list/rgAttacks[cAttacksMax];	/* fixed in global arrays */




/* 	monType, subType, hpBase,ndice,speed, slow, hobjlist;
	status, counter,cAttacks,iAttackCur, cAttacksRound, dirLast, row, col, rowplayer, colPlayer,hmem, rgw[2],
	fSpecial, dice,	fRange, attackType, plustodam, fsurehit, multiple, dieType
*/

#ifndef DEMO
struct MONDAT CBASED monWizard = {
	mtHuman, mstWizard, 30, 2, 75, 50, montreasure2Objects,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0x7Fd, 10,
	0, 1, 0, attackNormalHit, 0, 0, 1, 6
	};
#endif /* DEMO */
struct MONDAT CBASED monThief = {
	mtHuman, mstThief, 30, 2, 75, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackNormalHit, 0, 0, 1, 8
	};
struct MONDAT CBASED monBandit	 = {
	mtHuman,mstBandit, 20, 2, 50, 50, montreasureSilver,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 1, 4,
	0, 1, 1, attackFireArrow, 0, 0, 1, 6
	};
struct MONDAT CBASED monWarrior = {
	mtHuman, mstWarrior, 35, 2, 50, 50, montreasureSilver,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 3, 0, attackNormalHit, 0, 0, 1, 6
	};
struct MONDAT CBASED monBerserker = {
	mtHuman, mstBerserker, 45, 2, 50, 50, montreasureSilver,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 2, 6
	};
#ifndef DEMO
struct MONDAT CBASED monNecromancer = {
	mtHuman, mstNecromancer, 40, 2, 75, 50, montreasure3Objects,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0xdF8, 10,
	0, 1, 0, attackNormalHit, 0, 0, 1, 6
	};
#endif /* DEMO */
struct MONDAT CBASED monGoblin = {
	mtHumanoid, mstGoblin, 4, 0, 50, 50, montreasureCopper,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackNormalHit, 0, 0, 1, 3
	};
struct MONDAT CBASED monKobold = {
	mtHumanoid, mstKobold, 2, 1, 60, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackNormalHit, 0, 0, 1, 4
	};
struct MONDAT CBASED monHobGoblin = {
	mtHumanoid, mstHobGoblin,  4, 1, 50, 50, montreasureCopper,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackNormalHit, 0, 0, 1, 5
	};
struct MONDAT CBASED monOrc	 = {
	mtHumanoid, mstOrc,  	8, 1, 50, 50, montreasureCopper,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackNormalHit, 0, 0, 1, 6
	};
struct MONDAT CBASED monGoblinFighter = {
	mtHumanoid,mstGoblinFighter, 8, 2, 40, 50, montreasureCopper,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 1, 4
	};
struct MONDAT CBASED monRatMan = {
	mtHumanoid,mstRatMan, 22, 2, 50, 50, montreasureCopper,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 1, 5
	};
struct MONDAT CBASED monWolfMan = {
	mtHumanoid,mstWolfMan, 30, 3, 50, 50, montreasureSilver,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackClaw, 0, 0, 2, 3,
	0, 2, 0, attackNormalHit, 0, 0, 1, 6
	};
struct MONDAT CBASED monBearMan = {
	mtHumanoid,mstBearMan, 40, 3, 50, 50, montreasureSilver,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackClaw, 0, 0, 2, 4,
	0, 2, 0, attackNormalHit, 0, 0, 1, 7
	};
#ifndef DEMO
struct MONDAT CBASED monBullMan = {
	mtHumanoid,mstBullMan, 55, 3, 50, 50, montreasureGold,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 2, 5,
	0, 2, 0, attackNormalHit, 0, 0, 1, 8
	};
#endif /* DEMO */
struct MONDAT CBASED monOgre	 = {
	mtGiant,mstOgre, 20, 3, 35, 50, montreasureSilver,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 3, 0, attackNormalHit, 0, 0, 1, 4
	};
struct MONDAT CBASED monTroll = {
	mtGiant,mstTroll, 25, 3, 45, 50, 0,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 2, 4,
	0, 2, 0, attackNormalHit, 0, 0, 1, 6
	};
#ifndef DEMO
struct MONDAT CBASED monFireGiant	 = {
	mtGiant,mstFireGiant, 80, 3, 45, 50, montreasureGiant,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 5, 0, attackNormalHit, 0, 0, 1, 6,
	0, 2, 1, attackThrowBoulder, 0, 0, 1, 10
	};
struct MONDAT CBASED monFrostGiant	 = {
	mtGiant,mstFrostGiant, 70, 3, 45, 50, montreasureGiant,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 4, 0, attackNormalHit, 0, 0, 1, 6,
	0, 2, 1, attackThrowIceball, 0, 0, 1, 10
	};
#endif /* DEMO */
struct MONDAT CBASED monHillGiant	 = {
	mtGiant,mstHillGiant, 50, 3, 45, 50, montreasureGiant,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 1, 8,
	0, 2, 1, attackThrowBoulder, 0, 0, 1, 8
	};
#ifndef DEMO
struct MONDAT CBASED monStoneGiant	 = {
	mtGiant,mstStoneGiant, 60, 3, 40, 50, montreasureGiant,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 3, 0, attackNormalHit, 0, 0, 1, 6,
	0, 3, 1, attackThrowBoulder, 0, 0, 1, 10
	};
struct MONDAT CBASED monEttin	 = {
	mtGiant,mstEttin, 60, 3, 45, 50, montreasureGiant,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 3, 0, attackNormalHit, 0, 0, 2, 6,
	};
#endif /* DEMO */
struct MONDAT CBASED monSnake = {
	mtReptile, mstSnake, 5, 1, 60, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackBite, 0, 0, 1, 5
	};
struct MONDAT CBASED monViper = {
	mtReptile, mstViper, 8, 1, 50, 50, 0,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackBite, 0, 0, 1, 6,
	0, 1, 0, attackPoison1, 0, 0, 1, 8
	};
struct MONDAT CBASED monLizard = {
	mtReptile, mstLizard,	20, 1, 25, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackBite, 0, 0, 1, 10
	};
struct MONDAT CBASED monYORedDragon = {
	mtDragon, mstYORedDragon, 20, 2, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathFire, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 4,
	0, 1, 0, attackTailLash, 0, 0, 1, 8 ,
	0, 1, 0, attackTrample, 0, 0, 1, 10 ,
	0, 3, 0, attackBite, 0, 0, 1, 6
	};
struct MONDAT CBASED monYARedDragon = {
	mtDragon, mstYARedDragon, 40, 3, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathFire, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 5,
	0, 1, 0, attackTailLash, 0, 0, 1, 9 ,
	0, 1, 0, attackTrample, 0, 0, 1, 12 ,
	0, 4, 0, attackBite, 0, 0, 1, 6
	};
#ifndef DEMO
struct MONDAT CBASED monADRedDragon = {
	mtDragon, mstADRedDragon, 50, 4, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathFire, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 6,
	0, 1, 0, attackTailLash, 0, 0, 1, 10 ,
	0, 2, 0, attackTrample, 0, 0, 1, 7,
	0, 5, 0, attackBite, 0, 0, 1, 6
	};
struct MONDAT CBASED monOLRedDragon = {
	mtDragon, mstOLRedDragon, 60, 6, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathFire, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 4,
	0, 1, 0, attackTailLash, 0, 0, 1, 12 ,
	0, 2, 0, attackTrample, 0, 0, 1, 8,
	0, 6, 0, attackBite, 0, 0, 1, 6
	};
struct MONDAT CBASED monVORedDragon = {
	mtDragon, mstVORedDragon, 70, 7, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathFire, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 6,
	0, 2, 0, attackTailLash, 0, 0, 1, 7 ,
	0, 3, 0, attackTrample, 0, 0, 1, 6,
	0, 7, 0, attackBite, 0, 0, 1, 6
	};
struct MONDAT CBASED monANRedDragon = {
	mtDragon, mstANRedDragon, 80, 8, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathFire, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 8,
	0, 2, 0, attackTailLash, 0, 0, 1, 8 ,
	0, 3, 0, attackTrample, 0, 0, 1, 8 ,
	0, 8, 0, attackBite, 0, 0, 1, 6
	};
#endif /* DEMO */
struct MONDAT CBASED monYOBlueDragon = {
	mtDragon, mstYOBlueDragon, 20, 2, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathLightning, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 3,
	0, 1, 0, attackTailLash, 0, 0, 1, 7 ,
	0, 1, 0, attackTrample, 0, 0, 1, 9 ,
	0, 3, 0, attackBite, 0, 0, 1, 5
	};
struct MONDAT CBASED monYABlueDragon = {
	mtDragon, mstYABlueDragon, 30, 3, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathLightning, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 4,
	0, 1, 0, attackTailLash, 0, 0, 1, 8 ,
	0, 1, 0, attackTrample, 0, 0, 1, 11 ,
	0, 4, 0, attackBite, 0, 0, 1, 5
	};
#ifndef DEMO
struct MONDAT CBASED monADBlueDragon = {
	mtDragon, mstADBlueDragon, 40, 4, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathLightning, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 5,
	0, 1, 0, attackTailLash, 0, 0, 1, 9 ,
	0, 2, 0, attackTrample, 0, 0, 1, 6,
	0, 5, 0, attackBite, 0, 0, 1, 5
	};
struct MONDAT CBASED monOLBlueDragon = {
	mtDragon, mstOLBlueDragon, 50, 6, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathLightning, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 3,
	0, 1, 0, attackTailLash, 0, 0, 1, 11 ,
	0, 2, 0, attackTrample, 0, 0, 1, 7,
	0, 6, 0, attackBite, 0, 0, 1, 5
	};
struct MONDAT CBASED monVOBlueDragon = {
	mtDragon, mstVOBlueDragon, 60, 7, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathLightning, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 5,
	0, 2, 0, attackTailLash, 0, 0, 1, 6 ,
	0, 3, 0, attackTrample, 0, 0, 1, 5,
	0, 7, 0, attackBite, 0, 0, 1, 5
	};
struct MONDAT CBASED monANBlueDragon = {
	mtDragon, mstANBlueDragon, 70, 8, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathLightning, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 7,
	0, 2, 0, attackTailLash, 0, 0, 1, 7 ,
	0, 3, 0, attackTrample, 0, 0, 1, 7 ,
	0, 8, 0, attackBite, 0, 0, 1, 5
	};
#endif /* DEMO */
struct MONDAT CBASED monYOWhiteDragon = {
	mtDragon, mstYOWhiteDragon, 20, 2, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathCold, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 3,
	0, 1, 0, attackTailLash, 0, 0, 1, 6 ,
	0, 1, 0, attackTrample, 0, 0, 1, 8 ,
	0, 3, 0, attackBite, 0, 0, 1, 4
	};
struct MONDAT CBASED monYAWhiteDragon = {
	mtDragon, mstYAWhiteDragon, 30, 3, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathCold, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 4,
	0, 1, 0, attackTailLash, 0, 0, 1, 8,
	0, 1, 0, attackTrample, 0, 0, 1, 10,
	0, 4, 0, attackBite, 0, 0, 1, 4
	};
#ifndef DEMO
struct MONDAT CBASED monADWhiteDragon = {
	mtDragon, mstADWhiteDragon, 40, 4, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathCold, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 5,
	0, 1, 0, attackTailLash, 0, 0, 1, 9 ,
	0, 2, 0, attackTrample, 0, 0, 1, 5,
	0, 5, 0, attackBite, 0, 0, 1, 4
	};
struct MONDAT CBASED monOLWhiteDragon = {
	mtDragon, mstOLWhiteDragon, 50, 6, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathCold, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 3,
	0, 1, 0, attackTailLash, 0, 0, 1, 11 ,
	0, 2, 0, attackTrample, 0, 0, 1, 7,
	0, 6, 0, attackBite, 0, 0, 1, 5
	};
struct MONDAT CBASED monVOWhiteDragon = {
	mtDragon, mstVOWhiteDragon, 60, 7, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathCold, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 5,
	0, 2, 0, attackTailLash, 0, 0, 1, 6 ,
	0, 3, 0, attackTrample, 0, 0, 1, 5,
	0, 7, 0, attackBite, 0, 0, 1, 5
	};
struct MONDAT CBASED monANWhiteDragon = {
	mtDragon, mstANWhiteDragon, 70, 8, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathCold, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 7,
	0, 2, 0, attackTailLash, 0, 0, 1, 7 ,
	0, 3, 0, attackTrample, 0, 0, 1, 6,
	0, 8, 0, attackBite, 0, 0, 1, 5
	};
#endif /* DEMO */
struct MONDAT CBASED monYOGreenDragon = {
	mtDragon, mstYOGreenDragon, 20, 2, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathPoison, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 3,
	0, 1, 0, attackTailLash, 0, 0, 1, 6 ,
	0, 1, 0, attackTrample, 0, 0, 1, 8 ,
	0, 3, 0, attackBite, 0, 0, 1, 4
	};
struct MONDAT CBASED monYAGreenDragon = {
	mtDragon, mstYAGreenDragon, 30, 3, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathPoison, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 4,
	0, 1, 0, attackTailLash, 0, 0, 1, 8,
	0, 1, 0, attackTrample, 0, 0, 1, 10,
	0, 4, 0, attackBite, 0, 0, 1, 4
	};
#ifndef DEMO
struct MONDAT CBASED monADGreenDragon = {
	mtDragon, mstADGreenDragon, 40, 4, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathPoison, 6,
	0, 1, 0, attackClaw, 0, 0, 2, 5,
	0, 1, 0, attackTailLash, 0, 0, 1, 9 ,
	0, 2, 0, attackTrample, 0, 0, 1, 5,
	0, 5, 0, attackBite, 0, 0, 1, 4
	};
struct MONDAT CBASED monOLGreenDragon = {
	mtDragon, mstOLGreenDragon, 50, 6, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathPoison, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 3,
	0, 1, 0, attackTailLash, 0, 0, 1, 11 ,
	0, 2, 0, attackTrample, 0, 0, 1, 7,
	0, 6, 0, attackBite, 0, 0, 1, 5
	};
struct MONDAT CBASED monVOGreenDragon = {
	mtDragon, mstVOGreenDragon, 60, 7, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathPoison, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 5,
	0, 2, 0, attackTailLash, 0, 0, 1, 6 ,
	0, 3, 0, attackTrample, 0, 0, 1, 5,
	0, 7, 0, attackBite, 0, 0, 1, 5
	};
struct MONDAT CBASED monANGreenDragon = {
	mtDragon, mstANGreenDragon, 70, 8, 50, 50, montreasureCoins,
	mstatStandard, 0, 4, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, attackBreathPoison, 6,
	0, 2, 0, attackClaw, 0, 0, 2, 7,
	0, 2, 0, attackTailLash, 0, 0, 1, 7 ,
	0, 3, 0, attackTrample, 0, 0, 1, 6,
	0, 8, 0, attackBite, 0, 0, 1, 5
	};
#endif /* DEMO */
struct MONDAT CBASED monGreenSlime = {
	mtBlob, mstGreenSlime, 8, 1, 50, 50, 0,
	mstatHostile, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackAcid, 0, 0, 1, 10
	};
struct MONDAT CBASED monGelatinousCube = {
	mtBlob, mstGelatinousCube, 20, 2, 35, 50, montreasureObject,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 1, 4
	};
struct MONDAT CBASED monSkeleton = {
	mtSpirit, mstSkeleton, 8, 1, 50, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackNormalHit, 0, 0, 1, 6
	};
struct MONDAT CBASED monZombie = {
	mtSpirit, mstZombie, 12, 1, 35, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackNormalHit, 0, 0, 1, 8
	};
struct MONDAT CBASED monGhost = {
	mtSpirit, mstGhost, 30, 3, 50, 50, montreasureObject,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	1, 2, 0, attackStatDrain, changeDeltaTemp, 0, 1, STRENGTH,
	1, 2, 0, attackStatDrain, changeDeltaTemp, 0, 1, DEXTERITY
	};
#ifndef DEMO
struct MONDAT CBASED monSpectre = {
	mtSpirit, mstSpectre, 40, 3, 50, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 1, 8
	};
struct MONDAT CBASED monVampire = {
	mtSpirit, mstVampire, 50, 3, 50, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	1, 2, 0, attackHPDrain, changeMax | changeDeltaPerm, 0, 1, 3
	};
#endif /* DEMO */
struct MONDAT CBASED monTunnelWight = {
	mtSpirit, mstTunnelWight, 40, 3, 50, 50, 0,
	mstatStandard, 0, 3, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	1, 2, 0, attackStatDrain, changeDeltaPerm, 0, 1, DEXTERITY,
	1, 2, 0, attackStatDrain, changeDeltaPerm, 0, 1, STRENGTH,
	1, 2, 0, attackStatDrain, changeDeltaPerm, 0, 1, CONSTITUTION
	};
struct MONDAT CBASED monBarrowWight = {
	mtSpirit, mstBarrowWight, 45, 3, 50, 50, 0,
	mstatStandard, 0, 3, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	1, 3, 0, attackStatDrain, changeDeltaPerm, 0, 1, DEXTERITY,
	1, 3, 0, attackStatDrain, changeDeltaPerm, 0, 1, STRENGTH,
	1, 3, 0, attackStatDrain, changeDeltaPerm, 0, 1, CONSTITUTION
	};
#ifndef DEMO
struct MONDAT CBASED monCastleWight = {
	mtSpirit, mstCastleWight, 50, 3, 50, 50, 0,
	mstatStandard, 0, 3, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	1, 4, 0, attackStatDrain, changeDeltaPerm, 0, 1, DEXTERITY,
	1, 4, 0, attackStatDrain, changeDeltaPerm, 0, 1, STRENGTH,
	1, 4, 0, attackStatDrain, changeDeltaPerm, 0, 1, CONSTITUTION
	};
#endif /* DEMO */
struct MONDAT CBASED monPaleWraith = {
	mtSpirit, mstPaleWraith, 40, 3, 50, 50, montreasureObject,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	1, 2, 0, attackStatDrain, changeDeltaPerm, 0, 1, INTELLIGENCE,
	1, 1, 0, attackManaDrain, changeDeltaTemp, 0, 1, 4
	};
#ifndef DEMO
struct MONDAT CBASED monDarkWraith = {
	mtSpirit, mstDarkWraith, 50, 3, 50, 50, montreasureObject,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	1, 3, 0, attackStatDrain, changeDeltaPerm, 0, 1, INTELLIGENCE,
	1, 2, 0, attackManaDrain, changeDeltaTemp, 0, 1, 5
	};
struct MONDAT CBASED monAbyssWraith = {
	mtSpirit, mstAbyssWraith, 60, 3, 50, 50, montreasureObject,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	1, 4, 0, attackStatDrain, changeDeltaPerm, 0, 1, INTELLIGENCE,
	1, 3, 0, attackManaDrain, 0, 0, 1, 4
	};
#endif /* DEMO */
struct MONDAT CBASED monShadow = {
	mtSpirit, mstShadow, 40, 3, 50, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 1, 4
	};
struct MONDAT CBASED monRat	 = {
	mtAnimal, mstRat, 2, 0, 100, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackBite, 0, 0, 1, 2
	};
struct MONDAT CBASED monDog	 = {
	mtAnimal, mstDog, 6, 0, 50, 50, 0,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackClaw, 0, 0, 2, 4,		/* two claws */
	0, 1, 0, attackBite, 0, 0, 1, 6
	};
struct MONDAT CBASED monCarrionCrawler = {
	mtAnimal, mstCarrionCrawler, 17, 2, 50, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackNormalHit, 0, 0, 6, 2
	};
struct MONDAT CBASED monBat = {
	mtAnimal, mstBat, 5, 0, 75, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackBite, 0, 0, 1, 2
	};
struct MONDAT CBASED monManticore = {
	mtAnimal, mstManticore, 35, 3, 50, 50, 0,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 4, 0,
	0, 1, 0, attackClaw, 0, 0, 2, 3,
	0, 1, 0, attackBite, 0, 0, 1, 8
	};
struct MONDAT CBASED monWolf	 = {
	mtAnimal, mstWolf, 22, 2, 50, 50, 0,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackClaw, 0, 0, 2, 5,		/* two claws */
	0, 2, 0, attackBite, 0, 0, 1, 4
	};
struct MONDAT CBASED monWhiteWolf	 = {
	mtAnimal, mstWhiteWolf, 30, 2, 50, 50, 0,
	mstatStandard, 0, 3, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackClaw, 0, 0, 2, 5,		/* two claws */
	0, 2, 0, attackBite, 0, 0, 1, 5,
	0, 2, 0, attackCold, 0, 0, 1, 6
	};
struct MONDAT CBASED monBear	 = {
	mtAnimal, mstBear, 35, 2, 50, 50, 0,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackClaw, 0, 0, 2, 6,		/* two claws */
	0, 2, 0, attackBite, 0, 0, 1, 6
	};
struct MONDAT CBASED monCaveBear	 = {
	mtAnimal, mstCaveBear, 45, 2, 50, 50, 0,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackClaw, 0, 0, 2, 4,		/* two claws */
	0, 2, 0, attackBite, 0, 0, 1, 7
	};
struct MONDAT CBASED monAnt	 = {
	mtArachnid, mstAnt, 10, 1, 50, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackBite, 0, 0, 1, 8
	};
struct MONDAT CBASED monSpider = {
	mtArachnid, mstSpider, 20, 2, 50, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackBite, 0, 0, 1, 8	/* poison ? */
	};
struct MONDAT CBASED monScorpion = {
	mtArachnid, mstScorpion, 15, 2, 50, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackPoison1, 0, 0, 1, 8
	};
#ifndef DEMO
struct MONDAT CBASED monAirElemental = {
	mtElemental, mstAirElemental, 60, 4, 75, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackBuffet, 0, 0, 1, 10
	};
struct MONDAT CBASED monEarthElemental = {
	mtElemental, mstEarthElemental, 80, 4, 40, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 4, 0, attackNormalHit, 0, 0, 1, 8
	};
struct MONDAT CBASED monFireElemental = {
	mtElemental, mstFireElemental, 70, 4, 50, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 3, 0, attackFire, 0, 0, 1, 8
	};
struct MONDAT CBASED monWaterElemental = {
	mtElemental, mstWaterElemental, 70, 4, 50, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 5, 0, attackBuffet, 0, 0, 1, 6
	};
struct MONDAT CBASED monMagmaElemental = {
	mtElemental, mstMagmaElemental, 60, 4, 40, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 3, 0, attackNormalHit, 0, 0, 1, 7
	};
struct MONDAT CBASED monIceElemental = {
	mtElemental, mstIceElemental, 55, 4, 40, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 3, 0, attackNormalHit, 0, 0, 1, 6
	};
struct MONDAT CBASED monDustElemental = {
	mtElemental, mstDustElemental, 50, 3, 75, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackBuffet, 0, 0, 1, 8
	};
#endif /* DEMO */

struct MONDAT CBASED monBarbedDevil = {
	mtDevil, mstBarbedDevil, 60, 3, 50, 50, 0,
	mstatStandard, 0, 2, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackClaw, 0, 0, 2, 6,
	0, 3, 0, attackTailLash, 0, 0, 1, 10
	};
#ifndef DEMO
struct MONDAT CBASED monHornedDevil = {
	mtDevil, mstHornedDevil, 70, 3, 50, 50, 0,
	mstatStandard, 0, 3, 0, 3, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackClaw, 0, 0, 2, 6,
	0, 1, 0, attackBite, 1, 0, 1, 8,
	0, 1, 0, attackTailLash, 0, 0, 1, 10
	};
struct MONDAT CBASED monIceDevil = {
	mtDevil, mstIceDevil, 80, 3, 50, 50, 0,
	mstatStandard, 0, 3, 0, 3, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackClaw, 0, 0, 2, 10,
	0, 2, 0, attackBite, 1, 0, 1, 4,
	0, 3, 0, attackTailLash, 0, 0, 1, 5
	};
struct MONDAT CBASED monPitDevil = {
	mtDevil, mstPitDevil, 100, 3, 50, 50, 0,
	mstatStandard, 0, 2, 0, 2, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 4, 0, 1, 4,
	0, 2, 0, attackNormalHit, 6, 0, 1, 6
	};
#endif /* DEMO */
struct MONDAT CBASED monBronzeStatue	 = {
	mtAnimal, mstBronzeStatue, 45, 2, 40, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 1, 7
	};
#ifndef DEMO
struct MONDAT CBASED monIronStatue	 = {
	mtAnimal, mstIronStatue, 55, 2, 40, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 1, 8
	};
struct MONDAT CBASED monMarbleStatue	 = {
	mtAnimal, mstMarbleStatue, 65, 2, 40, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 1, 9
	};
#endif /* DEMO */
struct MONDAT CBASED monWoodStatue	 = {
	mtAnimal, mstWoodStatue, 35, 2, 40, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 2, 0, attackNormalHit, 0, 0, 1, 6
	};
#ifndef DEMO
struct MONDAT CBASED monSurtur = {
	mtSpecial, mstSurtur, 250, 0, 75, 50, 0,
	mstatStandard, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 5, 0,
	0, 3, 0, attackNormalHit, 0, 0, 1, 10
	};
struct MONDAT CBASED monHillGiantKing	 = {
	mtSpecial,mstHillGiantKing, 90, 0, 50, 50, montreasure5Objects,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 4, 0, attackNormalHit, 0, 0, 1, 8,
	0, 3, 1, attackThrowBoulder, 0, 0, 1, 8
	};
struct MONDAT CBASED monStoneGiantKing	 = {
	mtSpecial,mstStoneGiantKing, 100, 0, 50, 50, montreasure5Objects,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 5, 0, attackNormalHit, 0, 0, 1, 6,
	0, 3, 1, attackThrowBoulder, 0, 0, 1, 12
	};
struct MONDAT CBASED monFrostGiantKing	 = {
	mtSpecial,mstFrostGiantKing, 100, 0, 50, 50, montreasure5Objects,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 6, 0, attackNormalHit, 0, 0, 1, 6,
	0, 3, 1, attackThrowIceball, 0, 0, 1, 10
	};
struct MONDAT CBASED monFireGiantKing	 = {
	mtSpecial,mstFireGiantKing, 120, 0, 50, 50, montreasure5Objects,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 7, 0, attackNormalHit, 0, 0, 1, 6,
	0, 3, 1, attackThrowBoulder, 0, 0, 1, 10
	};
struct MONDAT CBASED monPrisoner	 = {
	mtSpecial,mstPrisoner, 10, 0, 50, 50, 0,
	mstatAwake, 0, 1, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 1, 0, attackNormalHit, 0, 0, 1, 6
	};
#endif /* DEMO */
#ifdef DEMO
struct MONDAT CBASED monHillGiantEmmissary	 = {
	mtSpecial,mstHillGiantEmmissary, 90, 0, 50, 50, montreasure5Objects,
	mstatStandard, 0, 2, 0, 1, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0,
	0, 4, 0, attackNormalHit, 0, 0, 1, 8,
	0, 3, 1, attackThrowBoulder, 0, 0, 1, 8
	};
#endif /* DEMO */

proc/InitializeMonDat()

*/

